package integer;
/**
 * 包装类
 * 包装类是为了解决基本类型不能直接参与面向对象开发的问题。实际就是将基本类型以
 * "对象"的形式表示。
 * @author 范传奇
 *
 */
public class IntegerDemo {
	public static void main(String[] args) {
		//基本类型转换为对应的包装类(引用类型)
		int i = 1;
		Integer i1 = new Integer(i);
		Integer i2 = new Integer(i);
		System.out.println(i1==i2);//false
		System.out.println(i1.equals(i2));//true
		
		/*
		 * 所有的包装类类型都提供了静态方法valueOf,可以将对应的基本类型转换为
		 * 包装类，并且这种方式也是java推荐的方式。
		 */
		Integer i3 = Integer.valueOf(i);
		Integer i4 = Integer.valueOf(i);
		System.out.println(i3==i4);
		System.out.println(i3.equals(i4));
		
		Double d1 = Double.valueOf(123.123);
		Double d2 = Double.valueOf(123.123);
		System.out.println(d1==d2);
		System.out.println(d1.equals(d2));
		
		/*
		 * 包装类转换为基本类型
		 */
		int n = d1.intValue();
		System.out.println(n);
		
		double dou = d1.doubleValue();
		System.out.println(dou);
		
		
		/*
		 * 包装类提供两个常量：MAX_VALUE和MIN_VALUE可以获取取值范围
		 */
		//查看int的最小值与最大值
		int min = Integer.MIN_VALUE;
		int max = Integer.MAX_VALUE;
		System.out.println(min);
		System.out.println(max);
	
		long lmin = Long.MIN_VALUE;
		long lmax = Long.MAX_VALUE;
		System.out.println(lmin);
		System.out.println(lmax);
		
		double dmin = Double.MIN_VALUE;
		double dmax = Double.MAX_VALUE;
		System.out.println(dmin);
		System.out.println(dmax);
		
		/*
		 * 包装类提供了一个静态方法:parseXXX(String str)
		 * 可以将字符串解析为对应的基本类型数据。前提是该字符串正确描述了基本
		 * 类型可以保存的值
		 */
//		String str = "123";
		String str = "123.123";//小数的字符串不能解析为整数，下面代码会报错
		int d = Integer.parseInt(str);
		System.out.println(d);//123
		
		double doub = Double.parseDouble(str);
		System.out.println(doub);//123.0
		
		
		
	}	
}








